package com.linsen.erp.admin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.linsen.erp.admin.entity.RoleEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.linsen.erp.admin.entity.UserEntity;
import com.linsen.erp.admin.provider.dto.RoleDTO;
import com.linsen.erp.admin.provider.qo.RoleQo;
import com.linsen.erp.admin.provider.vo.RoleVO;
import com.linsen.erp.admin.provider.vo.SystemUserVO;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author zhaoyong
 * @since 2023-07-24
 */
public interface IRoleService extends IService<RoleEntity> {
    /**
     * 根据userid获取对应角色code列表
     * @param userid
     * @param isAdmin 是否是管理员
     * @return
     */
    List<String> getCodeByUserid(String userid,Integer isAdmin);

    /** Web端分页查询角色 */
    Page<RoleVO> page(RoleQo qo);

    /** Web端查询角色详情 */
    RoleVO get(String id);

    /** 新增角色 */
    void saveRole(RoleDTO roleDTO);

    /** 修改角色 */
    void updateRole(RoleDTO roleDTO);

    /** 删除角色 */
    void delete(String id);

    /**
     * 登录环节-查询并设置登录用户数据权限内容
     * @param systemUserVO
     * @param userEntity
     */
    void setSystemUserVO(SystemUserVO systemUserVO, UserEntity userEntity);
}
